class stringcalc { str: string; arr: any[]; temp: number; conversion(str: string) { this.str = str; this.arr = this.str.split(' '); return this.arr; } calc() { for (let i = 0; i < this.arr.length; i++) { if (this.arr[i] == '*') { this.mul(i); i -= 2; } } for (let i = 0; i < this.arr.length; i++) { if (this.arr[i] == '/') { this.divi(i); i -= 2; } } for (let i = 0; i < this.arr.length; i++) { if (this.arr[i] == '+') { this.sum(i); i -= 2; } } for (let i = 0; i < this.arr.length; i++) { if (this.arr[i] == '-') { this.diff(i); i -= 2; } } return this.arr; } divi(i: number) { this.temp = parseFloat(this.arr[i - 1]) / parseFloat(this.arr[i + 1]); this.arr[i + 1] = this.temp; this.arr.splice(i - 1, 2); return this.arr; } mul(i: number) { this.temp = parseFloat(this.arr[i - 1]) * parseFloat(this.arr[i + 1]); this.arr[i + 1] = this.temp; this.arr.splice(i - 1, 2); return this.arr; } sum(i: number) { /*this.arr[i - 1] = typeof this.temp; this.arr[i + 1] = typeof this.temp; this.arr[i] = typeof this.temp; var temp1: number = this.arr[i - 1]; var temp2: number = this.arr[i + 1]; this.temp = temp1 + temp2;*/ this.temp = parseFloat(this.arr[i - 1]) + parseFloat(this.arr[i + 1]); this.arr[i + 1] = this.temp; this.arr.splice(i - 1, 2); return this.arr; } diff(i: number){ this.temp = parseFloat(this.arr[i - 1]) - parseFloat(this.arr[i + 1]); this.arr[i + 1] = this.temp; this.arr.splice(i - 1, 2); return this.arr; } } /*var ip = new stringcalc(); var arr1: any = ip.calc("10 + 12 / 2 / 3 - 7"); console.log(arr1);*/